import { BaseCommand, ICmdDialogParams, ObjInfo } from '@amcax/base';
import { Vector3 } from 'three-legacy';

export interface EditableCmdDialogParams extends ICmdDialogParams {
  props?: ObjInfo;
}

export interface CurvedCmdDialogParams extends EditableCmdDialogParams {}

export interface FeaturedCmdDialogParams extends EditableCmdDialogParams {}

export interface FeaturedCmdDialogParamsWithId extends FeaturedCmdDialogParams {
  cmdId: string;
}

export interface CurvedBaseCommand extends BaseCommand {}

export interface FeatureBaseCommand extends BaseCommand {}

export type Mark = {
  userId: string;
  name: string;
  dxid: string;
  targetId: string;
  targetType: string;
  center: Vector3;
  text: string;
  createdTime: number;
};

export interface CommandBarParams {
  style?: string;
}

// 作为各类命令参数的值，可能是数（number）或引用参数的表达式（string）
export type ExpressionValue = number | string;
